The present invention relates to the field of home automation and control systems and, more particularly, to a method and apparatus for providing distributed control of dynamically created home automation and control system scenes.
Home automation and control systems are used to control the behavior of an environment such as a home or office building. Home automation and control systems allow home occupants to automate and control the use of electrical products and appliances in and around the house. Home automation and control systems create and launch xe2x80x9cscenes,xe2x80x9d also called house scenes, involving one or more products and appliances. Examples of the types of products and appliances that can be automated and controlled are lighting, entertainment, cooking, heating, air conditioning, window treatments and landscaping. Examples of specific products and appliances that can be automated and controlled are lights, television sets, sound systems, coffee machines, ovens, furnaces, air conditioners, water heaters, humidifiers and lawn sprinklers. Each product or appliance can be set to a number of different states, i.e., on, off, and, if appropriate, an intermediate level. The controller of an electrical product or appliance, together with its effect on the controlled electrical product or appliance, will be referred to as a xe2x80x9cdevice.xe2x80x9d The xe2x80x9cload control buttonxe2x80x9d on a device is the button on the device controller that directly controls or affects the electrical product or appliance. The controller may be a physically separate entity from the product or appliance being controlled, or the controller may be physically embedded or integrated into the product or appliance being controlled.
A xe2x80x9cscenexe2x80x9d includes one (1) or more devices set to a particular state. For example, a morning scene could include the furnace set to 70xc2x0, the master bathroom lights on at 50%, the kitchen lights on at 100%, the coffee machine on, the television set in the kitchen on to a particular channel, and the front porch light off. This setting of devices constitutes one scene, and may be triggered by a trigger event also defined by the user, such as the press of a button on a remote control. A different scene may set additional devices and some or all of the members of the one scene to the same or different states. Current home automation and control systems are based on controlling devices through device resources, but these device resources are not interoperable between unlike resources. Current home automation and control systems require someone or something in the programming process to understand the details of the system device resources or each type of device resource in the system to create complex scenes. Current home automation and control systems create and launch scenes using several methods, each of which have significant drawbacks.
One method used by current home automation and control systems is to divide the devices into groups that all respond in basically the same way to a command. Some groups are composed of like type device resources, and other groupings allow mixed type resources, but all like-type device resources are limited to the same actionsxe2x80x94i.e., a group command received by like type device resources in the group will force each of those devices to the same state. This method does not provide the flexibility that in one scene some of the same type devices might be on and others off, while in another scene all of the devices might be on. Such an approach is, thus, limited to simple, synchronized scenes. In current home automation and control systems able to create more complex scenes, a central controller is commonly used, with a scene being launched, or triggered, when the central controller detects the trigger event. In response to detecting the trigger event, the central controller sends messages to the devices that are members of the scene directing them to go to their respective scene states. If the central controller fails, scenes can no longer be triggered because the controller can no longer send the necessary messages to the scene member devices to produce the scenes. In effect, if the central controller fails, the entire home automation and control system is rendered unusable. This single point of failure is highly undesirable to users of such systems. Additionally, the use of a central controller creates a heavy load of network traffic, since the central controller must send a message to each scene member device individually. The message traffic on the communication network for a central controller based scene with many member devices grows proportionally with the number of devices. For a scene with a large number of devices, this also causes a time delay time between the start of the scene when the first device gets its message until the last device gets its message. Such heavy network traffic and delay in triggering scene member devices is also undesirable to users of home automation and control systems.
Another method used by current home automation and control systems is to create pre-defined scenes sometimes called home modes. Examples of such home modes are xe2x80x9cawayxe2x80x9d or xe2x80x9chomexe2x80x9d or xe2x80x9cvacationxe2x80x9d scenes. A device receiving a scene launch command will know what state the device should be in for the chosen home mode, but the scene state is determined by the manufacturer for a particular device subtype. If the manufacturer defined home mode does not entirely produce the scene state desired by the home user, or different states are desired for the same device types (a night scene has all lights out except a nightlight in the bathroom, as an example) the scene can not be modified. Furthermore, such home automation and control systems can have only one active home mode at a time, and the home mode affects all devices in the system. This is not desirable in a house with multiple users, where each user may want to select a different scene to control the user""s local environment at the same time, without affecting any system devices not in the scene desired by the user.
In other current home automation and control systems able to create more complex scenes, a specialized central programming tool is used to create complex scenes that, once programmed, can operate in a distributed fashionxe2x80x94i.e., do not then require a central controller to send multiple messages to set the respective states of multiple devices each time a scene is triggered. However, the central programming tool may or may not be a permanent part of such a home automation and control system; and if the central programming tool is lost or fails, the system cannot be reconfigured. This can be a problem when the user of the home automation and control system wishes to reconfigure the systemxe2x80x94particularly when a new home owner finds the central programming tool went with the previous owner""s computer or has otherwise been lost.
Also, the central programming tool is typically specialized, in that it is limited to devices types that were known or contemplated when the original home automation and control system was installed. Thus, the central programming tool cannot reconfigure the system to incorporate newly developed device types, such as new media players, environmental control devices, etc., for which the programming tool does not have the requisite programming instructions. Thus, adding such new devices necessitates upgrades to the central programming tool. Furthermore, the addition of devices, whether originally contemplated or not, may reach a number exceeding the central programming tool or central controller limitations for number of devices in a scene.
Therefore, in light of the above, there is a need for a distributed and interoperable home automation and control scene method that provides dynamic complex scene creation but does not increase scene launch message traffic proportionally to the number of devices in the scene and that does not require someone or some entity in the programming process to understand the details of the system devices or each type of device in the system to create complex scenes.
In accordance with the present invention a distributed home automation and control system method and apparatus is provided. The method and apparatus creates and launches scenes in a way that does not increase scene launch message traffic proportionally to the number of devices in the scene and does not require someone or some entity in the programming process to understand the device type details of the system. Scenes are created system wide and may be called xe2x80x9chouse scenes.xe2x80x9d xe2x80x9cHousexe2x80x9d in this case means any type of premises, including homes, offices, boats, yards, etc. Each device in the system knows its own device-type details and is capable of dynamically learning the current state of those device-type details such that it can duplicate the current device state in a scene at a latter time without any external entity at any time knowing the device type-details. Instead of a programming tool or central controller learning the scene trigger(s) and scene state for each system device, each individual device learns its membership status in each house scene and the load state of the product or appliance controlled by the device.
In accordance with other aspects of this invention, each house scene is assigned a unique house scene identifier. House scenes are created by each individual member device, when given an indication to learn a new house scene, locally saving its membership status and the load state of the product or appliance associated with the house scene identifier, the product or appliance load state being the current state of the device when the device is given the indication to learn a new scene. When a non-member device is given the indication to learn a new scene, the device need not save any house scene information for that house scene identifier.
In accordance with further aspects of this invention, scene launch commands are generated by the actuation of scene trigger buttons. Trigger buttons may have fixed house scene identifiers associated with them, or a trigger button may learn a system resource house scene identifier to be associated with the actuating trigger button. Preferably, trigger buttons do not have predefined house scene identifiers associated with them. Also, preferably, each trigger button obtains and learns the house scene identifier at the time when it is associated with a house scene. When given an indication to learn a new system resource house scene identifier as a scene trigger, the device locally saves and associates the house scene identifier with the indicated particular scene trigger button. When the scene trigger button that has learned or been associated with a house scene identifier is activated, the activated scene trigger button launches the house scene by broadcasting a launch command to the entire network that contains the associated house scene identifier.
In accordance with yet other aspects of this invention, when a device in the network receives a broadcast scene launch command and the device membership status associated with the received house scene identifier indicates the device is a scene participant of that house scene, the device recalls the locally saved scene state associated with that house scene identifier. This allows one simple, short message containing the scene identifier to launch a scene in normal operation without regard to the number of scene members. The message does not tell the member devices how to implement a particular house scene, it only identifies the particular house scene to be launched. In accordance with yet still other aspects of this invention, alternatively, or in addition, a house scene can be launched by another entity, such as software running on a personal computer or an external controller, that is able to broadcast a scene launch command containing the house scene identifier for that particular house scene. While the system house scene resource is most desirable when the scene launch is broadcast to the network, those skilled in the art will appreciate that for network protocols where network broadcast addressing is not robustly supported or desirable, a scene launch identifier message could be addressed to each scene member device, individually or in a combined addressing scheme.
As will be appreciated from the foregoing description, the invention provides distributed programming and control of a home automation and control system. Each system device maintains scene definitions describing the state settings of the device for each scene in which the device participates as a scene member. Because the scene state setting and programming logic is embedded within each device participant, the control and programming of the system is distributed, thereby eliminating the single point of failure found in previous home automation and control systems. While any device in the system may fail, the other devices will continue to know their scene state settings and operate normally when a scene launch command is received. While any device in the system may fail and not be reprogrammable, such failure will not prevent other devices from being reprogrammable. Other devices will continue to be reprogrammable.
One benefit of the invention is a reduction in the expertise required to create complex scenes when compared to prior art solutions. Only devices need to know the details of their particular type in order to save a house scene state. No specialized knowledge of the devices to be included in a scene is needed by a central controller or centralized programming tool. There is no need for any entity outside the local device to ever know the local device scene setting associated with a particular house scene state, and no central controller is needed to create complex scenes. Each device can potentially be a member of many scenes. There is no limit to the number of system devices that can be members of a house scene. House scenes can include and exclude devices regardless of zone and group boundaries. A new device type can be incorporated into an existing house scene, even though that device type was totally unknown at the time the original scene was developed. No existing entity in the system outside the new device needs to know the details of the type of new device, and no upgrades to any existing device, central controller or programming tool are needed to add the new device to a house scene.
Another benefit of the invention is a reduction in the network traffic required to launch a complex scene as compared to central controller prior art solutions. Only a single trigger message with the scene identifier must be sent to devices participating in a scene in order to launch the scene. There is no requirement for a central controller to send a xe2x80x9cset devicexe2x80x9d command to each different scene member, group or zone. No other message traffic is necessary. Each device maintains its own scene definition for each scene describing the state of the device for the scene. Therefore, the launch scene command only needs to identify the scene to system devices in order for the scene to be launched. This message protocol allows scene control to be distributed throughout the home automation and control system, and also reduces the delay found in current central-controller-based home automation and control systems between the time a trigger event is received and when the last scene member is activated.
Generally described, the present invention provides a method and apparatus for providing distributed house scene programming and distributed control of a home automation and control system. According to one embodiment of the present invention, each device participating in a home automation and control system is embedded with control logic for providing distributed control. Through the control logic, each device maintains scene definitions describing the state of the device for each scene in which it participates.
When any device in the system receives a request to launch a scene, such as a scene trigger button press on one of the devices, the device broadcasts a scene state change message to all devices within the home automation and control system. The scene state change message identifies to each device a particular scene that should be launched. Each device in the system receives the message and determines whether the device is a participant in the scene. If the device is a participant in the scene, the device adjusts its state according to a scene definition associated with the scene stored in the device. In particular, the device may adjust a controlled electrical load, such as a light or appliance, according to the scene definition by turning the load on, off, or setting the load to some intermediate value. In this manner, a scene may be launched across an entire home automation and control network.
In addition to providing a distributed home automation and control method, the present invention also provides a related computer-readable medium and system for providing distributed control of a home automation and control system.